package com.mofum.cloud.core.model;

import java.math.BigInteger;

/**
 * 指令
 *
 * @author yumi@omuao.com
 */
public interface Instruction {

    /**
     * 指令ID
     *
     * @return id
     */
    BigInteger getId();

    /**
     * 设置ID
     *
     * @param id id
     */
    void setId(BigInteger id);

    /**
     * 设置指令算法
     *
     * @param algorithm 算法
     */
    void setAlgorithm(Algorithm algorithm);

    /**
     * 获得指令算法
     *
     * @return 算法
     */
    Algorithm getAlgorithm();

    /**
     * 机器码
     *
     * @return 机器码
     */
    BigInteger getMachineCode();

    /**
     * 设置机器码
     *
     * @param machineCode 机器码
     */
    void setMachineCode(BigInteger machineCode);

    /**
     * 设置指令名称
     *
     * @param name 指令名称
     */
    void setName(String name);

    /**
     * 获得指令名称
     *
     * @return 指令名称
     */
    String getName();
}
